package proxypattern.base;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * 提供远程服务的接口
 * Remote 是一个记号接口 所以不具有方法 具有特别的意义 所以我们必须遵守规则
 * 继承Remote 这表示此接口要用来支持远程调用
 * @author yaojianfeng
 */
public interface BaseMyRemote extends Remote  {
    /**
     * 每次远程方法的调用都必须考虑成是"有风险的" 在每个方法中声明RemoteException
     * 这可以让客户注意到这件事情,并了解这可能是无法工作的
     * @return 字符串
     * @throws RemoteException 远程调用异常
     *
     * notice:变量和返回值是属于原语类型或者可序列化类型(Serializable)
     * 当传送自定义类的时候 必须保证自己的类实现了Serializable
     */
    public String sayHello() throws RemoteException;
}
